wayland: Remove an overeager assert
authorMatthias Clasen <mclasen@redhat.com>
Sat, 5 Sep 2015 03:28:24 +0000 (23:28 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 5 Sep 2015 03:29:31 +0000 (23:29 -0400)
If we are using gl for drawing, we don't have a shm surface,
so don't assert that we do. Instead, only call shm-specific
apis when they make sense.

This fixes a crash when showing popovers over a GtkGLArea,
as seen in gdkgears.

https://bugzilla.gnome.org/show_bug.cgi?id=754143

gdk/wayland/gdkwindow-wayland.c

index 9190d4780c27afd7b11d5b9c4bec7e2e205dc383..d99975342269f142aaba94145734e30de57743ea 100644 (file)
@@ -420,8 +420,6 @@ on_frame_clock_after_paint (GdkFrameClock *clock,
   if (!impl->pending_commit)
     return;
 
-  g_assert (_gdk_wayland_is_shm_surface (impl->cairo_surface));
-
   impl->pending_commit = FALSE;
   impl->pending_frame_counter = gdk_frame_clock_get_frame_counter (clock);
   impl->awaiting_frame = TRUE;
@@ -431,7 +429,8 @@ on_frame_clock_after_paint (GdkFrameClock *clock,
   _gdk_frame_clock_freeze (clock);
 
   wl_surface_commit (impl->surface);
-  _gdk_wayland_shm_surface_set_busy (impl->cairo_surface);
+  if (_gdk_wayland_is_shm_surface (impl->cairo_surface))
+    _gdk_wayland_shm_surface_set_busy (impl->cairo_surface);
 }
 
 static void